# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        黄周云  
# Name:         test08
# Description:  例7.6
# Author:       ASUS
# Date:         2019/3/9
#-------------------------------------------------------------------------------


def add1(x,y,z):
    return x+y+z
print(add1(1,2,3))

list = [2,3,4]
# 将list中的2，3，4拆分，作为单独的参数值传入add1函数
print(add1(*list))

dict = {'x':100,'y':200,'z':12}
# 将字典中的x，y，z拆分成名为x，y，z的3个形参值，然后传入函数
print(add1(**dict))


# 用可变参数定义函数
def add2(*numbers):
    result = 0
    #可变参数在函数内部时以元组的形式体现的
    for number in numbers:
        result += number
    return result
print(add2(1,2,3,4,5))
print(add2(*list))
# 定义函数时，在参数前面使用两个星号，表示这个参数接受字典类型的数据
def add3(**numbers):
    result = 0
    for item in numbers.items():
        result += item[1]
    return  result
print(add3(**dict))
# 定义一个只拥有普通形参的函数
def add4(numbers):
    result = 0
    for item in numbers.items():
        result += item[1]
    return result
    #定义函数时不加双星，调用时也不需要加
print(add4(dict))









